package com.yipinhouse.backstage.client.param;

import com.yipinhouse.house.client.enums.EnumValue;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class InsertPremisesWebParam {

    /**
     * 参考价格
     */
    @Min(0)
    private BigDecimal referencePrice;

    /**
     * 楼盘名
     */
    @NotBlank(message="楼盘名不能为空")
    private String premisesName;

    /**
     * 项目特色
     */
    @NotBlank(message = "请输入项目特色")
    private String features;

    /**
     * 区域位置
     */
    @NotBlank(message = "请输入区域位置")
    private String locationArea;

    /**
     * 楼盘地址
     */
    @NotBlank(message = "请输入楼盘地址")
    private String buildingAddress;

    /**
     * 售楼处地址
     */
    @NotBlank(message = "请输入售楼处地址")
    private String salesAddress;

    /**
     * 开发商
     */
    @NotBlank(message = "请输入开发商")
    private String developer;

    /**
     * 建筑类型
     */
    @NotBlank(message = "请选择建筑类型")
    @EnumValue(strValues = {"COMMERCIAL", "MINOR", "COLLECT", "PLACEMENT"}, message = "房屋类型错误")
    private String buildingType;

    /**
     * 占地面积
     */
    @Min(0)
    private Double floorSpace;

    /**
     * 建筑面积
     */
    @Min(0)
    private Double floorArea;

    /**
     * 规划户数
     */
    @Min(0)
    private Integer households;

    /**
     * 产权年限
     */
    @Min(0)
    private Integer equities;

    /**
     * 最近交房
     */
    @NotNull(message = "请输入最近交房时间")
    private Date checkOut;

    /**
     * 绿化率
     */
    @Min(0)
    @Max(1)
    private Double afforest;

    /**
     * 容积率
     */
    @Min(0)
    @Max(1)
    private Double volumeRatio;

    /**
     * 物业类型
     */
    @NotBlank(message = "请选择物业类型")
    @EnumValue(strValues = {"LIVE", "BUSINESS", "INDUSTRIAL", "GOVERNMENT"}, message = "物业类型错误")
    private String propertyType;

    /**
     * 物业公司
     */
    @NotBlank(message = "请填写物业公司")
    private String propertyCompany;

    /**
     * 物业费
     */
    @Min(0)
    private Double propertyFee;

    /**
     * 供水方式
     */
    @NotBlank(message = "请选择供水方式")
    @EnumValue(strValues = {"DIRECTLY", "TANK", "PUMP", "PARTITION"}, message = "供水方式错误")
    private String waterMode;

    /**
     * 车位：Y|N
     */
    @NotBlank(message = "请选择车位信息")
    @EnumValue(strValues = {"Y", "N"}, message = "车位错误")
    private String parkingSpace;

    /**
     * 车位配比
     */
    @Min(0)
    @Max(1)
    private Double parkingSpaceRate;

    /**
     * 供暖方式
     */
    @NotBlank(message = "请选择供暖方式")
    @EnumValue(strValues = {"CENTRAL", "POINTS", "AIR"}, message = "供暖方式错误")
    private String warmingType;

    /**
     * 供电方式
     */
    @NotBlank(message = "请选择供电方式")
    @EnumValue(strValues = {"COMMERCE", "LIVE", "INDUSTRIAL"}, message = "供电方式错误")
    private String electricType;

    /**
     * 周边规划
     */
    @Min(0)
    private Integer rimId;
}
